using MediatR;
using System.ComponentModel.DataAnnotations;
using TaskProject.ErrorCode;

namespace TaskProject.Application.Command.Plan
{
    /// <summary>
    /// 生产计划操作命令
    /// </summary>
    public class ProductionPlanOperationCommand : IRequest<APIResult<bool>>
    {
        /// <summary>
        /// 生产计划ID
        /// </summary>
        public int PlanId { get; set; }

        /// <summary>
        /// 操作类型（3-启动，4-暂停，5-恢复，6-完成，7-取消）
        /// </summary>
        [Required(ErrorMessage = "操作类型不能为空")]
        public int OperationType { get; set; }

        /// <summary>
        /// 操作描述
        /// </summary>
        [MaxLength(500, ErrorMessage = "操作描述长度不能超过500个字符")]
        public string? OperationDescription { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [MaxLength(500, ErrorMessage = "备注长度不能超过500个字符")]
        public string? Remarks { get; set; }
    }
} 